Dashboard Temp Share Shortlinks Frames API

HTMLify

Happiest Triplet.py
Views: 36 | Author: prakhardoneria
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class Solution:
    def smallestDiff(self, a, b, c):
        a.sort()
        b.sort()
        c.sort()
        
        i, j, k = 0, 0, 0
        n = len(a)
        min_diff = float('inf')
        min_sum = float('inf')
        result = []
        
        while i < n and j < n and k < n:
            val_a, val_b, val_c = a[i], b[j], c[k]
            
            curr_max = max(val_a, val_b, val_c)
            curr_min = min(val_a, val_b, val_c)
            curr_diff = curr_max - curr_min
            curr_sum = val_a + val_b + val_c
            
            if curr_diff < min_diff:
                min_diff = curr_diff
                min_sum = curr_sum
                result = sorted([val_a, val_b, val_c], reverse=True)
            elif curr_diff == min_diff:
                if curr_sum < min_sum:
                    min_sum = curr_sum
                    result = sorted([val_a, val_b, val_c], reverse=True)
            
            if val_a == curr_min:
                i += 1
            elif val_b == curr_min:
                j += 1
            else:
                k += 1
                
        return result